home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / nasanets.zip / ACTIVATE.C < prev    next >
C/C++ Source or Header  |  1990-06-07  |  43KB  |  994 lines

  1. /*=============================*/
  2. /*           NETS              */
  3. /*                             */
  4. /* a product of the AI Section */
  5. /* NASA, Johnson Space Center  */
  6. /*                             */
  7. /* principal author:           */
  8. /*       Paul Baffes           */
  9. /*                             */
  10. /* contributing authors:       */
  11. /*      Bryan Dulock           */
  12. /*      Chris Ortiz            */
  13. /*=============================*/
  14.  
  15.  
  16. /*
  17. ----------------------------------------------------------------------
  18.   Code For Semi-linear Activation Function (Prefix = A_)
  19. ----------------------------------------------------------------------
  20.   This code is divided into 3 major sections:
  21.  
  22.   (1) include files
  23.   (2) global variables
  24.   (3) subroutines
  25.  
  26.   Each section is further explained below.
  27. ----------------------------------------------------------------------
  28. */
  29.  
  30.  
  31.  
  32. /*
  33. ----------------------------------------------------------------------
  34.   INCLUDE FILES
  35. ----------------------------------------------------------------------
  36. */
  37. #include  "common.h"
  38.  
  39.  
  40. /*
  41. ----------------------------------------------------------------------
  42.   GLOBAL VARIABLES
  43. ----------------------------------------------------------------------
  44.   The only global variable used by this code is a table needed for storing
  45.   all of the values of the semilinear funciton. This table is generated
  46.   to help speed things up when node outputs are being calculated. Rather
  47.   than run the rather long semilinear function, a table reference is 
  48.   made which will generate the appropriate answer.  In short, we pre-
  49.   calculate all possible values for the semilinear funciton and store
  50.   them in a table using the incoming sum value as an index for finding
  51.   the precalculated activation value.
  52. ----------------------------------------------------------------------
  53. */
  54.  
  55.      /* see "semi_linears" variable below */
  56.  
  57.  
  58. /*
  59. ======================================================================
  60.   ROUTINES IN NET.C                                                   
  61. ======================================================================
  62.   The only routine in this file is one which takes a Sint value which
  63.   represents a sum and returns the semilinear activation value.
  64.  
  65.   Type Returned                 Routine                                 
  66.   -------------                 -------                                 
  67.                                                                       
  68.     Sint                        A_activation
  69. ======================================================================
  70. */
  71.  
  72.  
  73.  
  74. /*
  75. ----------------------------------------------------------------------
  76.   Below is the definition for the global variable "semi_linears". This
  77.   table is of size MAX_SUM.
  78. ----------------------------------------------------------------------
  79. */
  80. #if  USE_SCALED_INTS
  81. static Sint  semi_linears[] ={
  82. 512, 512, 512, 512, 512, 513, 513, 513,
  83. 513, 514, 514, 514, 514, 515, 515, 515,
  84. 515, 516, 516, 516, 516, 517, 517, 517,
  85. 517, 518, 518, 518, 518, 519, 519, 519,
  86. 519, 520, 520, 520, 520, 521, 521, 521,
  87. 521, 522, 522, 522, 522, 523, 523, 523,
  88. 523, 524, 524, 524, 524, 525, 525, 525,
  89. 525, 526, 526, 526, 526, 527, 527, 527,
  90. 527, 528, 528, 528, 528, 529, 529, 529,
  91. 529, 530, 530, 530, 530, 531, 531, 531,
  92. 531, 532, 532, 532, 532, 533, 533, 533,
  93. 533, 534, 534, 534, 534, 535, 535, 535,
  94. 535, 536, 536, 536, 536, 537, 537, 537,
  95. 537, 538, 538, 538, 538, 539, 539, 539,
  96. 539, 540, 540, 540, 540, 541, 541, 541,
  97. 541, 542, 542, 542, 542, 543, 543, 543,
  98. 543, 544, 544, 544, 544, 545, 545, 545,
  99. 545, 546, 546, 546, 546, 547, 547, 547,
  100. 547, 548, 548, 548, 548, 549, 549, 549,
  101. 549, 550, 550, 550, 550, 551, 551, 551,
  102. 551, 552, 552, 552, 552, 553, 553, 553,
  103. 553, 554, 554, 554, 554, 555, 555, 555,
  104. 555, 556, 556, 556, 556, 557, 557, 557,
  105. 557, 558, 558, 558, 558, 559, 559, 559,
  106. 559, 560, 560, 560, 560, 561, 561, 561,
  107. 561, 562, 562, 562, 562, 563, 563, 563,
  108. 563, 564, 564, 564, 564, 565, 565, 565,
  109. 565, 566, 566, 566, 566, 567, 567, 567,
  110. 567, 568, 568, 568, 568, 569, 569, 569,
  111. 569, 569, 570, 570, 570, 570, 571, 571,
  112. 571, 571, 572, 572, 572, 572, 573, 573,
  113. 573, 573, 574, 574, 574, 574, 575, 575,
  114. 575, 575, 576, 576, 576, 576, 577, 577,
  115. 577, 577, 578, 578, 578, 578, 579, 579,
  116. 579, 579, 580, 580, 580, 580, 581, 581,
  117. 581, 581, 582, 582, 582, 582, 583, 583,
  118. 583, 583, 584, 584, 584, 584, 584, 585,
  119. 585, 585, 585, 586, 586, 586, 586, 587,
  120. 587, 587, 587, 588, 588, 588, 588, 589,
  121. 589, 589, 589, 590, 590, 590, 590, 591,
  122. 591, 591, 591, 592, 592, 592, 592, 593,
  123. 593, 593, 593, 594, 594, 594, 594, 595,
  124. 595, 595, 595, 595, 596, 596, 596, 596,
  125. 597, 597, 597, 597, 598, 598, 598, 598,
  126. 599, 599, 599, 599, 600, 600, 600, 600,
  127. 601, 601, 601, 601, 602, 602, 602, 602,
  128. 603, 603, 603, 603, 603, 604, 604, 604,
  129. 604, 605, 605, 605, 605, 606, 606, 606,
  130. 606, 607, 607, 607, 607, 608, 608, 608,
  131. 608, 609, 609, 609, 609, 610, 610, 610,
  132. 610, 610, 611, 611, 611, 611, 612, 612,
  133. 612, 612, 613, 613, 613, 613, 614, 614,
  134. 614, 614, 615, 615, 615, 615, 616, 616,
  135. 616, 616, 616, 617, 617, 617, 617, 618,
  136. 618, 618, 618, 619, 619, 619, 619, 620,
  137. 620, 620, 620, 621, 621, 621, 621, 622,
  138. 622, 622, 622, 622, 623, 623, 623, 623,
  139. 624, 624, 624, 624, 625, 625, 625, 625,
  140. 626, 626, 626, 626, 627, 627, 627, 627,
  141. 627, 628, 628, 628, 628, 629, 629, 629,
  142. 629, 630, 630, 630, 630, 631, 631, 631,
  143. 631, 631, 632, 632, 632, 632, 633, 633,
  144. 633, 633, 634, 634, 634, 634, 635, 635,
  145. 635, 635, 635, 636, 636, 636, 636, 637,
  146. 637, 637, 637, 638, 638, 638, 638, 639,
  147. 639, 639, 639, 639, 640, 640, 640, 640,
  148. 641, 641, 641, 641, 642, 642, 642, 642,
  149. 643, 643, 643, 643, 643, 644, 644, 644,
  150. 644, 645, 645, 645, 645, 646, 646, 646,
  151. 646, 646, 647, 647, 647, 647, 648, 648,
  152. 648, 648, 649, 649, 649, 649, 650, 650,
  153. 650, 650, 650, 651, 651, 651, 651, 652,
  154. 652, 652, 652, 653, 653, 653, 653, 653,
  155. 654, 654, 654, 654, 655, 655, 655, 655,
  156. 656, 656, 656, 656, 656, 657, 657, 657,
  157. 657, 658, 658, 658, 658, 658, 659, 659,
  158. 659, 659, 660, 660, 660, 660, 661, 661,
  159. 661, 661, 661, 662, 662, 662, 662, 663,
  160. 663, 663, 663, 664, 664, 664, 664, 664,
  161. 665, 665, 665, 665, 666, 666, 666, 666,
  162. 666, 667, 667, 667, 667, 668, 668, 668,
  163. 668, 669, 669, 669, 669, 669, 670, 670,
  164. 670, 670, 671, 671, 671, 671, 671, 672,
  165. 672, 672, 672, 673, 673, 673, 673, 673,
  166. 674, 674, 674, 674, 675, 675, 675, 675,
  167. 676, 676, 676, 676, 676, 677, 677, 677,
  168. 677, 678, 678, 678, 678, 678, 679, 679,
  169. 679, 679, 680, 680, 680, 680, 680, 681,
  170. 681, 681, 681, 682, 682, 682, 682, 682,
  171. 683, 683, 683, 683, 684, 684, 684, 684,
  172. 684, 685, 685, 685, 685, 686, 686, 686,
  173. 686, 686, 687, 687, 687, 687, 688, 688,
  174. 688, 688, 688, 689, 689, 689, 689, 690,
  175. 690, 690, 690, 690, 691, 691, 691, 691,
  176. 691, 692, 692, 692, 692, 693, 693, 693,
  177. 693, 693, 694, 694, 694, 694, 695, 695,
  178. 695, 695, 695, 696, 696, 696, 696, 697,
  179. 697, 697, 697, 697, 698, 698, 698, 698,
  180. 698, 699, 699, 699, 699, 700, 700, 700,
  181. 700, 700, 701, 701, 701, 701, 701, 702,
  182. 702, 702, 702, 703, 703, 703, 703, 703,
  183. 704, 704, 704, 704, 704, 705, 705, 705,
  184. 705, 706, 706, 706, 706, 706, 707, 707,
  185. 707, 707, 707, 708, 708, 708, 708, 709,
  186. 709, 709, 709, 709, 710, 710, 710, 710,
  187. 710, 711, 711, 711, 711, 712, 712, 712,
  188. 712, 712, 713, 713, 713, 713, 713, 714,
  189. 714, 714, 714, 714, 715, 715, 715, 715,
  190. 716, 716, 716, 716, 716, 717, 717, 717,
  191. 717, 717, 718, 718, 718, 718, 718, 719,
  192. 719, 719, 719, 720, 720, 720, 720, 720,
  193. 721, 721, 721, 721, 721, 722, 722, 722,
  194. 722, 722, 723, 723, 723, 723, 723, 724,
  195. 724, 724, 724, 725, 725, 725, 725, 725,
  196. 726, 726, 726, 726, 726, 727, 727, 727,
  197. 727, 727, 728, 728, 728, 728, 728, 729,
  198. 729, 729, 729, 729, 730, 730, 730, 730,
  199. 730, 731, 731, 731, 731, 731, 732, 732,
  200. 732, 732, 733, 733, 733, 733, 733, 734,
  201. 734, 734, 734, 734, 735, 735, 735, 735,
  202. 735, 736, 736, 736, 736, 736, 737, 737,
  203. 737, 737, 737, 738, 738, 738, 738, 738,
  204. 739, 739, 739, 739, 739, 740, 740, 740,
  205. 740, 740, 741, 741, 741, 741, 741, 742,
  206. 742, 742, 742, 742, 743, 743, 743, 743,
  207. 743, 744, 744, 744, 744, 744, 745, 745,
  208. 745, 745, 745, 746, 746, 746, 746, 746,
  209. 747, 747, 747, 747, 747, 748, 748, 748,
  210. 748, 748, 748, 749, 749, 749, 749, 749,
  211. 750, 750, 750, 750, 750, 751, 751, 751,
  212. 751, 751, 752, 752, 752, 752, 752, 753,
  213. 753, 753, 753, 753, 754, 754, 754, 754,
  214. 754, 755, 755, 755, 755, 755, 756, 756,
  215. 756, 756, 756, 756, 757, 757, 757, 757,
  216. 757, 758, 758, 758, 758, 758, 759, 759,
  217. 759, 759, 759, 760, 760, 760, 760, 760,
  218. 761, 761, 761, 761, 761, 761, 762, 762,
  219. 762, 762, 762, 763, 763, 763, 763, 763,
  220. 764, 764, 764, 764, 764, 764, 765, 765,
  221. 765, 765, 765, 766, 766, 766, 766, 766,
  222. 767, 767, 767, 767, 767, 768, 768, 768,
  223. 768, 768, 768, 769, 769, 769, 769, 769,
  224. 770, 770, 770, 770, 770, 770, 771, 771,
  225. 771, 771, 771, 772, 772, 772, 772, 772,
  226. 773, 773, 773, 773, 773, 773, 774, 774,
  227. 774, 774, 774, 775, 775, 775, 775, 775,
  228. 775, 776, 776, 776, 776, 776, 777, 777,
  229. 777, 777, 777, 777, 778, 778, 778, 778,
  230. 778, 779, 779, 779, 779, 779, 779, 780,
  231. 780, 780, 780, 780, 781, 781, 781, 781,
  232. 781, 781, 782, 782, 782, 782, 782, 783,
  233. 783, 783, 783, 783, 783, 784, 784, 784,
  234. 784, 784, 785, 785, 785, 785, 785, 785,
  235. 786, 786, 786, 786, 786, 787, 787, 787,
  236. 787, 787, 787, 788, 788, 788, 788, 788,
  237. 788, 789, 789, 789, 789, 789, 790, 790,
  238. 790, 790, 790, 790, 791, 791, 791, 791,
  239. 791, 791, 792, 792, 792, 792, 792, 792,
  240. 793, 793, 793, 793, 793, 794, 794, 794,
  241. 794, 794, 794, 795, 795, 795, 795, 795,
  242. 795, 796, 796, 796, 796, 796, 796, 797,
  243. 797, 797, 797, 797, 798, 798, 798, 798,
  244. 798, 798, 799, 799, 799, 799, 799, 799,
  245. 800, 800, 800, 800, 800, 800, 801, 801,
  246. 801, 801, 801, 801, 802, 802, 802, 802,
  247. 802, 802, 803, 803, 803, 803, 803, 803,
  248. 804, 804, 804, 804, 804, 804, 805, 805,
  249. 805, 805, 805, 806, 806, 806, 806, 806,
  250. 806, 807, 807, 807, 807, 807, 807, 808,
  251. 808, 808, 808, 808, 808, 809, 809, 809,
  252. 809, 809, 809, 809, 810, 810, 810, 810,
  253. 810, 810, 811, 811, 811, 811, 811, 811,
  254. 812, 812, 812, 812, 812, 812, 813, 813,
  255. 813, 813, 813, 813, 814, 814, 814, 814,
  256. 814, 814, 815, 815, 815, 815, 815, 815,
  257. 816, 816, 816, 816, 816, 816, 817, 817,
  258. 817, 817, 817, 817, 817, 818, 818, 818,
  259. 818, 818, 818, 819, 819, 819, 819, 819,
  260. 819, 820, 820, 820, 820, 820, 820, 821,
  261. 821, 821, 821, 821, 821, 821, 822, 822,
  262. 822, 822, 822, 822, 823, 823, 823, 823,
  263. 823, 823, 824, 824, 824, 824, 824, 824,
  264. 824, 825, 825, 825, 825, 825, 825, 826,
  265. 826, 826, 826, 826, 826, 826, 827, 827,
  266. 827, 827, 827, 827, 828, 828, 828, 828,
  267. 828, 828, 829, 829, 829, 829, 829, 829,
  268. 829, 830, 830, 830, 830, 830, 830, 831,
  269. 831, 831, 831, 831, 831, 831, 832, 832,
  270. 832, 832, 832, 832, 832, 833, 833, 833,
  271. 833, 833, 833, 834, 834, 834, 834, 834,
  272. 834, 834, 835, 835, 835, 835, 835, 835,
  273. 836, 836, 836, 836, 836, 836, 836, 837,
  274. 837, 837, 837, 837, 837, 837, 838, 838,
  275. 838, 838, 838, 838, 838, 839, 839, 839,
  276. 839, 839, 839, 840, 840, 840, 840, 840,
  277. 840, 840, 841, 841, 841, 841, 841, 841,
  278. 841, 842, 842, 842, 842, 842, 842, 842,
  279. 843, 843, 843, 843, 843, 843, 843, 844,
  280. 844, 844, 844, 844, 844, 844, 845, 845,
  281. 845, 845, 845, 845, 845, 846, 846, 846,
  282. 846, 846, 846, 846, 847, 847, 847, 847,
  283. 847, 847, 847, 848, 848, 848, 848, 848,
  284. 848, 848, 849, 849, 849, 849, 849, 849,
  285. 849, 850, 850, 850, 850, 850, 850, 850,
  286. 851, 851, 851, 851, 851, 851, 851, 852,
  287. 852, 852, 852, 852, 852, 852, 853, 853,
  288. 853, 853, 853, 853, 853, 854, 854, 854,
  289. 854, 854, 854, 854, 854, 855, 855, 855,
  290. 855, 855, 855, 855, 856, 856, 856, 856,
  291. 856, 856, 856, 857, 857, 857, 857, 857,
  292. 857, 857, 857, 858, 858, 858, 858, 858,
  293. 858, 858, 859, 859, 859, 859, 859, 859,
  294. 859, 860, 860, 860, 860, 860, 860, 860,
  295. 860, 861, 861, 861, 861, 861, 861, 861,
  296. 862, 862, 862, 862, 862, 862, 862, 862,
  297. 863, 863, 863, 863, 863, 863, 863, 864,
  298. 864, 864, 864, 864, 864, 864, 864, 865,
  299. 865, 865, 865, 865, 865, 865, 865, 866,
  300. 866, 866, 866, 866, 866, 866, 867, 867,
  301. 867, 867, 867, 867, 867, 867, 868, 868,
  302. 868, 868, 868, 868, 868, 868, 869, 869,
  303. 869, 869, 869, 869, 869, 869, 870, 870,
  304. 870, 870, 870, 870, 870, 871, 871, 871,
  305. 871, 871, 871, 871, 871, 872, 872, 872,
  306. 872, 872, 872, 872, 872, 873, 873, 873,
  307. 873, 873, 873, 873, 873, 874, 874, 874,
  308. 874, 874, 874, 874, 874, 875, 875, 875,
  309. 875, 875, 875, 875, 875, 876, 876, 876,
  310. 876, 876, 876, 876, 876, 877, 877, 877,
  311. 877, 877, 877, 877, 877, 877, 878, 878,
  312. 878, 878, 878, 878, 878, 878, 879, 879,
  313. 879, 879, 879, 879, 879, 879, 880, 880,
  314. 880, 880, 880, 880, 880, 880, 881, 881,
  315. 881, 881, 881, 881, 881, 881, 881, 882,
  316. 882, 882, 882, 882, 882, 882, 882, 883,
  317. 883, 883, 883, 883, 883, 883, 883, 883,
  318. 884, 884, 884, 884, 884, 884, 884, 884,
  319. 885, 885, 885, 885, 885, 885, 885, 885,
  320. 885, 886, 886, 886, 886, 886, 886, 886,
  321. 886, 887, 887, 887, 887, 887, 887, 887,
  322. 887, 887, 888, 888, 888, 888, 888, 888,
  323. 888, 888, 888, 889, 889, 889, 889, 889,
  324. 889, 889, 889, 890, 890, 890, 890, 890,
  325. 890, 890, 890, 890, 891, 891, 891, 891,
  326. 891, 891, 891, 891, 891, 892, 892, 892,
  327. 892, 892, 892, 892, 892, 892, 893, 893,
  328. 893, 893, 893, 893, 893, 893, 893, 894,
  329. 894, 894, 894, 894, 894, 894, 894, 894,
  330. 895, 895, 895, 895, 895, 895, 895, 895,
  331. 895, 896, 896, 896, 896, 896, 896, 896,
  332. 896, 896, 897, 897, 897, 897, 897, 897,
  333. 897, 897, 897, 897, 898, 898, 898, 898,
  334. 898, 898, 898, 898, 898, 899, 899, 899,
  335. 899, 899, 899, 899, 899, 899, 900, 900,
  336. 900, 900, 900, 900, 900, 900, 900, 900,
  337. 901, 901, 901, 901, 901, 901, 901, 901,
  338. 901, 902, 902, 902, 902, 902, 902, 902,
  339. 902, 902, 902, 903, 903, 903, 903, 903,
  340. 903, 903, 903, 903, 904, 904, 904, 904,
  341. 904, 904, 904, 904, 904, 904, 905, 905,
  342. 905, 905, 905, 905, 905, 905, 905, 905,
  343. 906, 906, 906, 906, 906, 906, 906, 906,
  344. 906, 906, 907, 907, 907, 907, 907, 907,
  345. 907, 907, 907, 907, 908, 908, 908, 908,
  346. 908, 908, 908, 908, 908, 908, 909, 909,
  347. 909, 909, 909, 909, 909, 909, 909, 909,
  348. 910, 910, 910, 910, 910, 910, 910, 910,
  349. 910, 910, 911, 911, 911, 911, 911, 911,
  350. 911, 911, 911, 911, 912, 912, 912, 912,
  351. 912, 912, 912, 912, 912, 912, 913, 913,
  352. 913, 913, 913, 913, 913, 913, 913, 913,
  353. 913, 914, 914, 914, 914, 914, 914, 914,
  354. 914, 914, 914, 915, 915, 915, 915, 915,
  355. 915, 915, 915, 915, 915, 915, 916, 916,
  356. 916, 916, 916, 916, 916, 916, 916, 916,
  357. 917, 917, 917, 917, 917, 917, 917, 917,
  358. 917, 917, 917, 918, 918, 918, 918, 918,
  359. 918, 918, 918, 918, 918, 918, 919, 919,
  360. 919, 919, 919, 919, 919, 919, 919, 919,
  361. 919, 920, 920, 920, 920, 920, 920, 920,
  362. 920, 920, 920, 920, 921, 921, 921, 921,
  363. 921, 921, 921, 921, 921, 921, 921, 922,
  364. 922, 922, 922, 922, 922, 922, 922, 922,
  365. 922, 922, 923, 923, 923, 923, 923, 923,
  366. 923, 923, 923, 923, 923, 924, 924, 924,
  367. 924, 924, 924, 924, 924, 924, 924, 924,
  368. 924, 925, 925, 925, 925, 925, 925, 925,
  369. 925, 925, 925, 925, 926, 926, 926, 926,
  370. 926, 926, 926, 926, 926, 926, 926, 926,
  371. 927, 927, 927, 927, 927, 927, 927, 927,
  372. 927, 927, 927, 927, 928, 928, 928, 928,
  373. 928, 928, 928, 928, 928, 928, 928, 929,
  374. 929, 929, 929, 929, 929, 929, 929, 929,
  375. 929, 929, 929, 930, 930, 930, 930, 930,
  376. 930, 930, 930, 930, 930, 930, 930, 931,
  377. 931, 931, 931, 931, 931, 931, 931, 931,
  378. 931, 931, 931, 931, 932, 932, 932, 932,
  379. 932, 932, 932, 932, 932, 932, 932, 932,
  380. 933, 933, 933, 933, 933, 933, 933, 933,
  381. 933, 933, 933, 933, 934, 934, 934, 934,
  382. 934, 934, 934, 934, 934, 934, 934, 934,
  383. 934, 935, 935, 935, 935, 935, 935, 935,
  384. 935, 935, 935, 935, 935, 935, 936, 936,
  385. 936, 936, 936, 936, 936, 936, 936, 936,
  386. 936, 936, 937, 937, 937, 937, 937, 937,
  387. 937, 937, 937, 937, 937, 937, 937, 938,
  388. 938, 938, 938, 938, 938, 938, 938, 938,
  389. 938, 938, 938, 938, 939, 939, 939, 939,
  390. 939, 939, 939, 939, 939, 939, 939, 939,
  391. 939, 939, 940, 940, 940, 940, 940, 940,
  392. 940, 940, 940, 940, 940, 940, 940, 941,
  393. 941, 941, 941, 941, 941, 941, 941, 941,
  394. 941, 941, 941, 941, 942, 942, 942, 942,
  395. 942, 942, 942, 942, 942, 942, 942, 942,
  396. 942, 942, 943, 943, 943, 943, 943, 943,
  397. 943, 943, 943, 943, 943, 943, 943, 943,
  398. 944, 944, 944, 944, 944, 944, 944, 944,
  399. 944, 944, 944, 944, 944, 944, 945, 945,
  400. 945, 945, 945, 945, 945, 945, 945, 945,
  401. 945, 945, 945, 945, 946, 946, 946, 946,
  402. 946, 946, 946, 946, 946, 946, 946, 946,
  403. 946, 946, 947, 947, 947, 947, 947, 947,
  404. 947, 947, 947, 947, 947, 947, 947, 947,
  405. 947, 948, 948, 948, 948, 948, 948, 948,
  406. 948, 948, 948, 948, 948, 948, 948, 949,
  407. 949, 949, 949, 949, 949, 949, 949, 949,
  408. 949, 949, 949, 949, 949, 949, 950, 950,
  409. 950, 950, 950, 950, 950, 950, 950, 950,
  410. 950, 950, 950, 950, 950, 951, 951, 951,
  411. 951, 951, 951, 951, 951, 951, 951, 951,
  412. 951, 951, 951, 951, 952, 952, 952, 952,
  413. 952, 952, 952, 952, 952, 952, 952, 952,
  414. 952, 952, 952, 952, 953, 953, 953, 953,
  415. 953, 953, 953, 953, 953, 953, 953, 953,
  416. 953, 953, 953, 954, 954, 954, 954, 954,
  417. 954, 954, 954, 954, 954, 954, 954, 954,
  418. 954, 954, 954, 955, 955, 955, 955, 955,
  419. 955, 955, 955, 955, 955, 955, 955, 955,
  420. 955, 955, 955, 956, 956, 956, 956, 956,
  421. 956, 956, 956, 956, 956, 956, 956, 956,
  422. 956, 956, 956, 957, 957, 957, 957, 957,
  423. 957, 957, 957, 957, 957, 957, 957, 957,
  424. 957, 957, 957, 957, 958, 958, 958, 958,
  425. 958, 958, 958, 958, 958, 958, 958, 958,
  426. 958, 958, 958, 958, 958, 959, 959, 959,
  427. 959, 959, 959, 959, 959, 959, 959, 959,
  428. 959, 959, 959, 959, 959, 959, 960, 960,
  429. 960, 960, 960, 960, 960, 960, 960, 960,
  430. 960, 960, 960, 960, 960, 960, 960, 961,
  431. 961, 961, 961, 961, 961, 961, 961, 961,
  432. 961, 961, 961, 961, 961, 961, 961, 961,
  433. 962, 962, 962, 962, 962, 962, 962, 962,
  434. 962, 962, 962, 962, 962, 962, 962, 962,
  435. 962, 962, 963, 963, 963, 963, 963, 963,
  436. 963, 963, 963, 963, 963, 963, 963, 963,
  437. 963, 963, 963, 963, 964, 964, 964, 964,
  438. 964, 964, 964, 964, 964, 964, 964, 964,
  439. 964, 964, 964, 964, 964, 964, 965, 965,
  440. 965, 965, 965, 965, 965, 965, 965, 965,
  441. 965, 965, 965, 965, 965, 965, 965, 965,
  442. 965, 966, 966, 966, 966, 966, 966, 966,
  443. 966, 966, 966, 966, 966, 966, 966, 966,
  444. 966, 966, 966, 966, 967, 967, 967, 967,
  445. 967, 967, 967, 967, 967, 967, 967, 967,
  446. 967, 967, 967, 967, 967, 967, 967, 968,
  447. 968, 968, 968, 968, 968, 968, 968, 968,
  448. 968, 968, 968, 968, 968, 968, 968, 968,
  449. 968, 968, 969, 969, 969, 969, 969, 969,
  450. 969, 969, 969, 969, 969, 969, 969, 969,
  451. 969, 969, 969, 969, 969, 969, 970, 970,
  452. 970, 970, 970, 970, 970, 970, 970, 970,
  453. 970, 970, 970, 970, 970, 970, 970, 970,
  454. 970, 970, 971, 971, 971, 971, 971, 971,
  455. 971, 971, 971, 971, 971, 971, 971, 971,
  456. 971, 971, 971, 971, 971, 971, 971, 972,
  457. 972, 972, 972, 972, 972, 972, 972, 972,
  458. 972, 972, 972, 972, 972, 972, 972, 972,
  459. 972, 972, 972, 972, 973, 973, 973, 973,
  460. 973, 973, 973, 973, 973, 973, 973, 973,
  461. 973, 973, 973, 973, 973, 973, 973, 973,
  462. 973, 974, 974, 974, 974, 974, 974, 974,
  463. 974, 974, 974, 974, 974, 974, 974, 974,
  464. 974, 974, 974, 974, 974, 974, 974, 975,
  465. 975, 975, 975, 975, 975, 975, 975, 975,
  466. 975, 975, 975, 975, 975, 975, 975, 975,
  467. 975, 975, 975, 975, 975, 976, 976, 976,
  468. 976, 976, 976, 976, 976, 976, 976, 976,
  469. 976, 976, 976, 976, 976, 976, 976, 976,
  470. 976, 976, 976, 976, 977, 977, 977, 977,
  471. 977, 977, 977, 977, 977, 977, 977, 977,
  472. 977, 977, 977, 977, 977, 977, 977, 977,
  473. 977, 977, 977, 978, 978, 978, 978, 978,
  474. 978, 978, 978, 978, 978, 978, 978, 978,
  475. 978, 978, 978, 978, 978, 978, 978, 978,
  476. 978, 978, 979, 979, 979, 979, 979, 979,
  477. 979, 979, 979, 979, 979, 979, 979, 979,
  478. 979, 979, 979, 979, 979, 979, 979, 979,
  479. 979, 979, 980, 980, 980, 980, 980, 980,
  480. 980, 980, 980, 980, 980, 980, 980, 980,
  481. 980, 980, 980, 980, 980, 980, 980, 980,
  482. 980, 980, 980, 981, 981, 981, 981, 981,
  483. 981, 981, 981, 981, 981, 981, 981, 981,
  484. 981, 981, 981, 981, 981, 981, 981, 981,
  485. 981, 981, 981, 981, 982, 982, 982, 982,
  486. 982, 982, 982, 982, 982, 982, 982, 982,
  487. 982, 982, 982, 982, 982, 982, 982, 982,
  488. 982, 982, 982, 982, 982, 982, 983, 983,
  489. 983, 983, 983, 983, 983, 983, 983, 983,
  490. 983, 983, 983, 983, 983, 983, 983, 983,
  491. 983, 983, 983, 983, 983, 983, 983, 983,
  492. 984, 984, 984, 984, 984, 984, 984, 984,
  493. 984, 984, 984, 984, 984, 984, 984, 984,
  494. 984, 984, 984, 984, 984, 984, 984, 984,
  495. 984, 984, 984, 985, 985, 985, 985, 985,
  496. 985, 985, 985, 985, 985, 985, 985, 985,
  497. 985, 985, 985, 985, 985, 985, 985, 985,
  498. 985, 985, 985, 985, 985, 985, 985, 986,
  499. 986, 986, 986, 986, 986, 986, 986, 986,
  500. 986, 986, 986, 986, 986, 986, 986, 986,
  501. 986, 986, 986, 986, 986, 986, 986, 986,
  502. 986, 986, 986, 987, 987, 987, 987, 987,
  503. 987, 987, 987, 987, 987, 987, 987, 987,
  504. 987, 987, 987, 987, 987, 987, 987, 987,
  505. 987, 987, 987, 987, 987, 987, 987, 987,
  506. 988, 988, 988, 988, 988, 988, 988, 988,
  507. 988, 988, 988, 988, 988, 988, 988, 988,
  508. 988, 988, 988, 988, 988, 988, 988, 988,
  509. 988, 988, 988, 988, 988, 988, 989, 989,
  510. 989, 989, 989, 989, 989, 989, 989, 989,
  511. 989, 989, 989, 989, 989, 989, 989, 989,
  512. 989, 989, 989, 989, 989, 989, 989, 989,
  513. 989, 989, 989, 989, 989, 990, 990, 990,
  514. 990, 990, 990, 990, 990, 990, 990, 990,
  515. 990, 990, 990, 990, 990, 990, 990, 990,
  516. 990, 990, 990, 990, 990, 990, 990, 990,
  517. 990, 990, 990, 990, 991, 991, 991, 991,
  518. 991, 991, 991, 991, 991, 991, 991, 991,
  519. 991, 991, 991, 991, 991, 991, 991, 991,
  520. 991, 991, 991, 991, 991, 991, 991, 991,
  521. 991, 991, 991, 991, 991, 992, 992, 992,
  522. 992, 992, 992, 992, 992, 992, 992, 992,
  523. 992, 992, 992, 992, 992, 992, 992, 992,
  524. 992, 992, 992, 992, 992, 992, 992, 992,
  525. 992, 992, 992, 992, 992, 992, 993, 993,
  526. 993, 993, 993, 993, 993, 993, 993, 993,
  527. 993, 993, 993, 993, 993, 993, 993, 993,
  528. 993, 993, 993, 993, 993, 993, 993, 993,
  529. 993, 993, 993, 993, 993, 993, 993, 993,
  530. 993, 994, 994, 994, 994, 994, 994, 994,
  531. 994, 994, 994, 994, 994, 994, 994, 994,
  532. 994, 994, 994, 994, 994, 994, 994, 994,
  533. 994, 994, 994, 994, 994, 994, 994, 994,
  534. 994, 994, 994, 994, 994, 995, 995, 995,
  535. 995, 995, 995, 995, 995, 995, 995, 995,
  536. 995, 995, 995, 995, 995, 995, 995, 995,
  537. 995, 995, 995, 995, 995, 995, 995, 995,
  538. 995, 995, 995, 995, 995, 995, 995, 995,
  539. 995, 995, 996, 996, 996, 996, 996, 996,
  540. 996, 996, 996, 996, 996, 996, 996, 996,
  541. 996, 996, 996, 996, 996, 996, 996, 996,
  542. 996, 996, 996, 996, 996, 996, 996, 996,
  543. 996, 996, 996, 996, 996, 996, 996, 996,
  544. 997, 997, 997, 997, 997, 997, 997, 997,
  545. 997, 997, 997, 997, 997, 997, 997, 997,
  546. 997, 997, 997, 997, 997, 997, 997, 997,
  547. 997, 997, 997, 997, 997, 997, 997, 997,
  548. 997, 997, 997, 997, 997, 997, 997, 997,
  549. 998, 998, 998, 998, 998, 998, 998, 998,
  550. 998, 998, 998, 998, 998, 998, 998, 998,
  551. 998, 998, 998, 998, 998, 998, 998, 998,
  552. 998, 998, 998, 998, 998, 998, 998, 998,
  553. 998, 998, 998, 998, 998, 998, 998, 998,
  554. 998, 999, 999, 999, 999, 999, 999, 999,
  555. 999, 999, 999, 999, 999, 999, 999, 999,
  556. 999, 999, 999, 999, 999, 999, 999, 999,
  557. 999, 999, 999, 999, 999, 999, 999, 999,
  558. 999, 999, 999, 999, 999, 999, 999, 999,
  559. 999, 999, 999, 999, 1000, 1000, 1000, 1000,
  560. 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
  561. 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
  562. 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
  563. 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
  564. 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
  565. 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
  566. 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
  567. 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
  568. 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
  569. 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
  570. 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002,
  571. 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
  572. 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
  573. 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
  574. 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
  575. 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
  576. 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
  577. 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
  578. 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
  579. 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
  580. 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
  581. 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
  582. 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
  583. 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1004,
  584. 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
  585. 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
  586. 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
  587. 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
  588. 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
  589. 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
  590. 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
  591. 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
  592. 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
  593. 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
  594. 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
  595. 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
  596. 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
  597. 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
  598. 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
  599. 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
  600. 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
  601. 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
  602. 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
  603. 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
  604. 1006, 1006, 1006, 1006, 1007, 1007, 1007, 1007,
  605. 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
  606. 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
  607. 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
  608. 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
  609. 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
  610. 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
  611. 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
  612. 1007, 1007, 1007, 1008, 1008, 1008, 1008, 1008,
  613. 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
  614. 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
  615. 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
  616. 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
  617. 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
  618. 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
  619. 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
  620. 1008, 1008, 1008, 1008, 1008, 1008, 1009, 1009,
  621. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  622. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  623. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  624. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  625. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  626. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  627. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  628. 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
  629. 1009, 1009, 1009, 1009, 1009, 1009, 1010, 1010,
  630. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  631. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  632. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  633. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  634. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  635. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  636. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  637. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  638. 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
  639. 1010, 1010, 1010, 1011, 1011, 1011, 1011, 1011,
  640. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  641. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  642. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  643. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  644. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  645. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  646. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  647. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  648. 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
  649. 1011, 1011, 1011, 1011, 1011, 1011, 1012, 1012,
  650. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  651. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  652. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  653. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  654. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  655. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  656. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  657. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  658. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  659. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  660. 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
  661. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  662. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  663. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  664. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  665. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  666. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  667. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  668. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  669. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  670. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  671. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  672. 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
  673. 1013, 1013, 1014, 1014, 1014, 1014, 1014, 1014,
  674. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  675. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  676. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  677. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  678. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  679. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  680. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  681. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  682. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  683. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  684. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  685. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
  686. 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1015,
  687. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  688. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  689. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  690. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  691. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  692. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  693. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  694. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  695. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  696. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  697. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  698. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  699. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  700. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  701. 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
  702. 1015, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  703. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  704. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  705. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  706. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  707. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  708. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  709. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  710. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  711. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  712. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  713. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  714. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  715. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  716. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  717. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  718. 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
  719. 1016, 1016, 1016, 1017, 1017, 1017, 1017, 1017,
  720. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  721. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  722. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  723. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  724. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  725. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  726. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  727. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  728. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  729. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  730. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  731. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  732. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  733. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  734. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  735. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  736. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  737. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  738. 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
  739. 1017, 1017, 1018, 1018, 1018, 1018, 1018, 1018,
  740. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  741. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  742. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  743. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  744. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  745. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  746. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  747. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  748. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  749. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  750. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  751. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  752. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  753. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  754. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  755. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  756. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  757. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  758. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  759. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  760. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  761. 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
  762. 1018, 1018, 1018, 1018, 1018, 1019, 1019, 1019,
  763. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  764. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  765. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  766. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  767. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  768. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  769. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  770. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  771. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  772. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  773. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  774. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  775. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  776. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  777. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  778. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  779. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  780. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  781. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  782. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  783. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  784. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  785. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  786. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  787. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  788. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  789. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  790. 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
  791. 1019, 1019, 1019, 1020, 1020, 1020, 1020, 1020,
  792. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  793. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  794. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  795. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  796. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  797. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  798. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  799. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  800. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  801. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  802. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  803. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  804. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  805. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  806. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  807. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  808. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  809. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  810. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  811. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  812. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  813. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  814. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  815. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  816. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  817. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  818. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  819. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  820. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  821. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  822. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  823. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  824. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  825. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  826. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  827. 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
  828. 1020, 1020, 1021, 1021, 1021, 1021, 1021, 1021,
  829. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  830. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  831. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  832. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  833. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  834. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  835. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  836. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  837. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  838. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  839. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  840. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  841. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  842. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  843. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  844. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  845. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  846. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  847. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  848. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  849. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  850. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  851. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  852. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  853. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  854. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  855. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  856. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  857. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  858. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  859. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  860. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  861. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  862. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  863. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  864. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  865. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  866. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  867. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  868. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  869. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  870. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  871. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  872. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  873. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  874. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  875. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  876. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  877. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  878. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  879. 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
  880. 1021, 1021, 1021, 1022, 1022, 1022, 1022, 1022,
  881. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  882. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  883. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  884. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  885. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  886. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  887. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  888. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  889. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  890. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  891. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  892. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  893. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  894. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  895. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  896. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  897. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  898. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  899. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  900. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  901. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  902. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  903. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  904. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  905. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  906. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  907. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  908. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  909. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  910. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  911. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  912. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  913. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  914. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  915. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  916. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  917. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  918. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  919. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  920. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  921. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  922. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  923. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  924. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  925. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  926. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  927. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  928. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  929. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  930. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  931. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  932. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  933. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  934. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  935. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  936. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  937. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  938. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  939. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  940. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  941. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  942. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  943. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  944. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  945. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  946. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  947. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  948. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  949. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  950. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  951. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  952. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  953. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  954. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  955. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
  956. 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022 };
  957.  
  958. /* end semi_linears table definition */
  959. #endif
  960.  
  961.  
  962. Sint  A_activation(sum)
  963. D_Sint  sum;
  964. /*
  965. ----------------------------------------------------------------------
  966.  All that is done here is to take the incoming argument, convert it to
  967.   an index, and then use the 'semi_linears' table to return the value   
  968.   stored for the resulting Sint.  The only trick is to remember that  
  969.   if a NEGATIVE value comes in, then you need to return 1 (in Sint    
  970.   form) minus the value retrieved from 'semi_linears'.                
  971. ----------------------------------------------------------------------
  972. */
  973. BEGIN
  974. #if   USE_SCALED_INTS
  975.    static Sint  high_Sint = (MAX_SUM - 1);
  976.    static Sint  low_Sint  = ((MAX_SUM -1) * -1);
  977.    int          isum;
  978.  
  979.    if (sum > high_Sint) 
  980.       sum = high_Sint;
  981.    else if (sum < low_Sint)
  982.       sum = low_Sint;
  983.  
  984.    isum = (int) sum;                /* isum = sum as an index the array */
  985.    if (isum >= 0)
  986.       return(semi_linears[isum]);
  987.    return(SINT_SCALE - semi_linears[isum * -1]);
  988. #else
  989.    return( (Sint)(1.0 / (1.0 + exp(-1.0 * sum))) );
  990. #endif
  991.  
  992. END /* A_activation */
  993.  
  994.